/*
double有效数字位为15 – 16位,第16位不一定有效,字节数为8,指数长度为11位,小数长度为52位。因此本题只能用字符数组来存储
除以8：模拟算式除法的过程，
由低到高：先转换低位，再转换高位，低位除以8的次数要多些
*/

#include <cstdio>
#include <cstring>
 char eg[10000];   //输入一个八进制小数
char eg_10[10000] = {'0'};//输出的十进制小数（没有0.），定义同时进行初始化eg_10[0] = ‘0’
int main()
{
   
    while ( scanf("%s", eg) != EOF ){
		memset(eg_10,0,sizeof(eg_10));
        int index = 0;	//记录十进制小数的位数，初始时0位小数 
        int i=strlen(eg) - 1;//对i定义并初始化
        for ( ; i != 1; --i ){//从最低位开始转换 
            int num = eg[i] - '0';//八进制小数的当前位，同时也是下面计算的余数

			/*****************************************************
             *除8的高精度计算(计算值还是只能按照十进制来算)
             */
            int j=0;
			//num也就是余数要除尽。（任何数除以8都能除得尽） 
            for ( ; (j < index )|| num; ++j ){//模拟算式除法的过程  (num为0，并且j已经大于等于index时结束循环
                int temp = num*10 + (j < index ? eg_10[j] - '0' :0 );//被除数右边没有数字了就补充0， 否则就是当前位上的数字 
                eg_10[j] = temp/8 + '0';    //商（商和被除数都用的同一个数组来存储） 
                num = temp%8;      //余数
            }
			/******************************************************/

            index = j;   //十进制小数的位数
        }

        eg_10[index] = '\0';
        printf("%s [8] = 0.%s [10]\n",eg, eg_10);
    }

    return 0;
}